package collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合受元素equals方法影响的相关操作.
 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        /** 集合重写了toString()方法 */
        Collection c = new ArrayList<>();
        c.add(new Point(1,2));
        c.add(new Point(5,6));
        c.add(new Point(3,4));
        c.add(new Point(7,8));
        /*
            集合重写了toString()方法,返回的字符串格式为:
            [元素1.toString(),元素2.toString(),元素3.toString(),......]
         */
        System.out.println(c);
        /** boolean contains(Object o) 判断当前集合是否包含给定元素
         * 根据equals重写情况:1.如果没重写，则默认比较"==".
         *                  2.在测试类重写，则比较内容是否相同.
         */
        /*
            boolean contains(Object o)
            判断当前集合是否包含给定元素，判断依据是给定元素是否与集合现有元素存在equals比较为
            true的情况，存在则认为包含.
         */
        Point p = new Point(1,2);
        boolean contains = c.contains(p);
        System.out.println("包含:"+contains);
        /** remove() 从集合中删除给定元素,(List)重复元素仅删除一次 */
        /*
            boolean remove()
            从集合中删除给定元素，删除的是与集合中equals比较为true的元素。
            对于List集合而言，如果存在重复元素仅删除一次。
            当有元素被删除时发放返回true.
         */
        c.remove(p);// 当有元素被删除时发放返回true.
        System.out.println(c);
        System.out.println(c.equals(p));


    }
}
